package com.zp.drug.entity;

import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.zp.common.core.entity.BaseEntity;
import com.zp.common.satoken.utils.LoginHelper;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 药品库存对象 drug_stock
 *
 * @author zhang peng
 * @ date 2023-06-08
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("drug_stock")
public class DrugStock extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private String id;

    /**
     * 药品编码
     */
    private String drugCode;

    /**
     * drugInfoId
     */
    private String drugInfoId;

    /**
     * drug_price_id
     */
    private String drugPriceId;

    /**
     * 小包装的药品价表id
     */
    private String drugMinPriceId;

    /**
     * 大小包装：1(小包装)；2(大包装)
     */
    private String packSize;

    /**
     * 库存单位
     */
    private String storageId;

    /**
     * 库存单位名称
     */
    private String storageName;

    /**
     * 包装数量
     */
    private Integer packageNum;

    /**
     * 包装规格
     */
    private String packageSpec;

    /**
     * 包装单位
     */
    private String packageUnits;

    /**
     * 最小规格
     */
    private String minSpec;

    /**
     * 最小单位
     */
    private String minUnits;

    /**
     * 进货价
     */
    private BigDecimal tradePrice;

    /**
     * 进货价(小规格)
     */
    private BigDecimal tradePriceMin;

    /**
     * 售价
     */
    private BigDecimal retailPrice;

    /**
     * 售价(小规格)
     */
    private BigDecimal retailPriceMin;

    /**
     * 网络价格
     */
    private BigDecimal networkPrice;

    /**
     * 网络价（小规格）
     */
    private BigDecimal networkPriceMin;

    /**
     * 折扣
     */
    private BigDecimal discount;

    /**
     * 批号
     */
    private String batchNo;

    /**
     * 生产日期
     */
    private Date produceDate;

    /**
     * 有效期
     */
    private Date expireDate;

    /**
     * 小包装库存量
     */
    private Integer quantity;

    /**
     * 机构ID
     */
    private String orgId;

    /**
     * 入库单号
     */
    private String documentNo;

    /**
     * 对应的入库主表ID
     */
    private String importMasterId;

    /**
     * 货位
     */
    private String location;

    /**
     * 供应商
     */
    private String supplierId;

    /**
     * 盘点是否显示（库存为0不显示）
     */
    private String inventoryIsShow;

    /**
     * 标志
     */
    @TableLogic
    private String delFlag;
    /**
     * 备注信息
     */
    private String remarks;
    /**
     * 是否停止供应 Y正常供应; N停止供应
     */
    private String isSupply;
    /**
     * 停止供应操作人
     */
    private String stopOperator;
    /**
     * 停止供应时间
     */
    private Date stopDate;
    /**
     * 比例
     */
    private BigDecimal proportion;

    /**
     * 药品规格、价钱相同，但批次不同的药品保存id相同
     */
    private String identicalInfoId;

    public void initEntity () {
        this.delFlag = "0";
    }

    /**
     * 修改人、修改时间信息信息
     */
    public void updateInfo () {
        setUpdateBy(LoginHelper.getLoginUser().getNickName());
        setUpdateTime(new Date());
    }
}
